﻿using System;
using System.Collections.Generic;
using KZ.Utilities;

namespace KZ.Express.H.ENT
{
    public class CustomerENT : BaseENT
    {
        [Output]
        public int CustomerID { get; set; }

        public int? UserID { get; set; }

        [NotInsertUpdate]
        public string SaleName { get; set; }

        [Required(ErrorMessage = "Bạn phải nhập mã khách hàng")]
        public string CustomerCode { get; set; }

        [Required(ErrorMessage = "Bạn phải nhập tên khách hàng")]
        public string CustomerName { get; set; }

        [Required(ErrorMessage = "Bạn phải nhập tên khách hàng trên invoice")]
        public string InvoiceCustomerName { get; set; }

        public string Address { get; set; }

        public string Industry { get; set; }

        public string Phone { get; set; }

        public string Mobile { get; set; }

        public string Contact { get; set; }

        public string Email { get; set; }

        public string TaxCode { get; set; }

        [NotInsertUpdate]
        public bool IsDeleted { get; set; }

        public int? CreatedBy { get; set; }

        [NotInsertUpdate]
        public DateTime? CreatedDate { get; set; }

        public int? UpdatedBy { get; set; }

        [NotInsertUpdate]
        public DateTime? UpdatedDate { get; set; }
        
        [NotInsertUpdate]
        public override string Table { get { return "Customers"; } }

        [NotInsertUpdate]
        public override string Name { get { return "khách hàng"; } }

        [NotInsertUpdate]
        public override string PrimaryKey { get { return "CustomerID"; } }

        [NotInsertUpdate]
        public override string PrimaryDescription { get { return "CustomerCode"; } }

        /// <summary>
        /// proc_Customer_Insert
        /// </summary>
        [NotInsertUpdate]
        public override string InsertProcedure { get { return "proc_Customer_Insert"; } }

        /// <summary>
        /// proc_Customer_Update
        /// </summary>
        [NotInsertUpdate]
        public override string UpdateProcedure { get { return "proc_Customer_Update"; } }

        /// <summary>
        /// proc_Customer_Select
        /// </summary>
        [NotInsertUpdate]
        public override string SelectProcedure { get { return "proc_Customer_Select"; } }
    }
}